Base

Essa base de dados é pública e disponíbilizada para pesquisa. Os detalhes estão disponíveis em P. Cortez, A. Cerdeira, F. Almeida, T. Matos E J. Journey. Modelagem de preferências de vinhos por mineração de dados a partir de propriedades físico-químicas.Nos sistemas de apoio à decisão, Elsevier, 47 (4): 547-553. ISSN: 0167-9236.Disponível em: [@Elsevier] http://dx.doi.org/10.1016/j.dss.2009.05.016 [Pré-imprensa (PDF)] http://www3.dsi.uminho.pt/pcortez/winequality09.pdf [Bib] Http://www3.dsi.uminho.pt/pcortez/dss09.bib

A base de dados tem 6497 observações de vinhos portugueses tintos e brancos. Essas observações são compostas por 11 (onze) variáveis quantitativas continuas contendo valores apurados em testes físico-quimicos a respeito das suas características ou composições, 1 (uma) variável quantitativa continua que poderá ser convertida em categórica ordinal, pois indica a qualidade do vinho baseada em dados sensoriais apurada pela mediana de pelo menos 3 avaliações efetuadas por peritos em vinhos, e esta será a nossa variável ‘target’, e 1 (uma) variável categorica nominal indicando o tipo do vinho (tinto ou branco). O nosso objetivo é através da inferência estatística descobrir se existe alguma correlação entre qualidade do vinho e os valores dos seus atributos. Essa relação causal deverá explicar o porquê um vinho foi considerado melhor ou pior que o outro baseado em suas caracteristicas físico-quimicas.

## 'data.frame':    6497 obs. of  13 variables:
##  $ fixedacidity      : num  6.6 6.7 10.6 5.4 6.7 6.8 6.6 7.2 5.1 6.2 ...
##  $ volatileacidity   : num  0.24 0.34 0.31 0.18 0.3 0.5 0.61 0.66 0.26 0.22 ...
##  $ citricacid        : num  0.35 0.43 0.49 0.24 0.44 0.11 0 0.33 0.33 0.2 ...
##  $ residualsugar     : num  7.7 1.6 2.2 4.8 18.8 ...
##  $ chlorides         : num  0.031 0.041 0.063 0.041 0.057 0.075 0.069 0.068 0.027 0.035 ...
##  $ freesulfurdioxide : num  36 29 18 30 65 16 4 34 46 58 ...
##  $ totalsulfurdioxide: num  135 114 40 113 224 49 8 102 113 184 ...
##  $ density           : num  0.994 0.99 0.998 0.994 1 ...
##  $ pH                : num  3.19 3.23 3.14 3.42 3.11 3.36 3.33 3.27 3.35 3.11 ...
##  $ sulphates         : num  0.37 0.44 0.51 0.4 0.53 0.79 0.37 0.78 0.43 0.53 ...
##  $ alcohol           : num  10.5 12.6 9.8 9.4 9.1 9.5 10.4 12.8 11.4 9 ...
##  $ quality           : int  5 6 6 6 5 5 4 6 7 6 ...
##  $ Vinho             : Factor w/ 2 levels "RED","WHITE": 2 2 1 2 2 1 1 1 2 2 ...

Descritivo sobre as variáveis

Atributos Descrição
fixedacidity (Acidez fixa) a maioria dos ácidos presentes no vinho ou fixos ou não voláteis (não evaporaram prontamente)
volatileacidity (Acidez volátil) a quantidade de ácido acético no vinho, que em níveis muito altos pode levar a um gosto desagradável de vinagre.
citricacid (Ácido cítrico) encontrado em pequenas quantidades, o ácido cítrico pode adicionar “frescura” e sabor aos vinhos.
residualsugar (Açúcar residual) a quantidade de açúcar restante ao término da fermentação, é raro encontrar vinhos com menos de 1 grama / litro. Vinhos com mais de 45 gramas / litro são considerados doces.
chlorides (Cloretos) a quantidade de sal no vinho.
freesulfurdioxide (Dióxido de enxofre livre) a forma livre de SO2 existe em equilíbrio entre o SO2 molecular (como gás dissolvido) e o íon bissulfito; impede o crescimento microbiano e a oxidação do vinho.
totalsulfurdioxide (Dióxido de enxofre total) quantidade de formas livres e encadernadas de S02; em baixas concentrações, o SO2 é quase indetectável no vinho, mas nas concentrações de SO2 livre acima de 50 ppm, o SO2 se torna evidente no nariz e no sabor do vinho.
density (Densidade) a densidade da água é próxima à da água, dependendo do percentual de álcool e teor de açúcar.
pH descreve como o vinho é acídico ou básico numa escala de 0 (muito ácido) a 14 (muito básico); a maioria dos vinhos tem entre 3-4 na escala de pH.
sulphates (Sulfatos) um aditivo de vinho que pode contribuir para os níveis de gás de dióxido de enxofre (S02), que age como um antimicrobiano e antioxidante.
alcohol (Álcool) o teor alcoólico percentual do vinho.
quality (Qualidade) variável de saída (com base em dados sensoriais) que poderiam ser de 0 a 10 sendo zero muito ruim e 10 muito excelente.

No sumário das variáveis podemos notar alguns atributos com grande aplitude sugerindo a presença de outliers, como por exemplo: o açucar residual, a acidez cítrica, o dióxido de exofre total, o dióxido de enxofre livre, o álcool. Podemos notar que na nossa base de dados temos avaliados muito mais vinhos brancos do que tintos.

##   fixedacidity    volatileacidity    citricacid     residualsugar  
##  Min.   : 3.800   Min.   :0.0800   Min.   :0.0000   Min.   : 0.60  
##  1st Qu.: 6.400   1st Qu.:0.2300   1st Qu.:0.2500   1st Qu.: 1.80  
##  Median : 7.000   Median :0.2900   Median :0.3100   Median : 3.00  
##  Mean   : 7.215   Mean   :0.3397   Mean   :0.3186   Mean   : 5.44  
##  3rd Qu.: 7.700   3rd Qu.:0.4000   3rd Qu.:0.3900   3rd Qu.: 8.10  
##  Max.   :15.900   Max.   :1.5800   Max.   :1.6600   Max.   :45.80  
##    chlorides       freesulfurdioxide totalsulfurdioxide    density      
##  Min.   :0.00900   Min.   :  1.00    Min.   :  6.0      Min.   :0.9871  
##  1st Qu.:0.03800   1st Qu.: 17.00    1st Qu.: 77.0      1st Qu.:0.9923  
##  Median :0.04700   Median : 29.00    Median :118.0      Median :0.9949  
##  Mean   :0.05603   Mean   : 30.53    Mean   :115.7      Mean   :0.9947  
##  3rd Qu.:0.06500   3rd Qu.: 41.00    3rd Qu.:156.0      3rd Qu.:0.9970  
##  Max.   :0.61100   Max.   :289.00    Max.   :440.0      Max.   :1.0140  
##        pH          sulphates         alcohol           quality     
##  Min.   :2.720   Min.   :0.2200   Min.   : 0.9567   Min.   :3.000  
##  1st Qu.:3.110   1st Qu.:0.4300   1st Qu.: 9.5000   1st Qu.:5.000  
##  Median :3.210   Median :0.5100   Median :10.3000   Median :6.000  
##  Mean   :3.219   Mean   :0.5313   Mean   :10.4862   Mean   :5.818  
##  3rd Qu.:3.320   3rd Qu.:0.6000   3rd Qu.:11.3000   3rd Qu.:6.000  
##  Max.   :4.010   Max.   :2.0000   Max.   :14.9000   Max.   :9.000  
##    Vinho     
##  RED  :1599  
##  WHITE:4898  
##              
##              
##              
## 

Análise dos dados

Numa escala de 0 a 10 a menor nota de qualidade obtida foi 3 e a maior nota foi 9.

No atributo qualidade vimos uma distribuição com muito poucos registros considerados excelentes e ruins. A grande maioria dos vinhos foi classificada como normal (nem ruim, nem excelente), digamos, no meio termo da classificação.

##    
##      RED WHITE
##   3   10    20
##   4   53   163
##   5  681  1457
##   6  638  2198
##   7  199   880
##   8   18   175
##   9    0     5

Os vinhos brancos apresentam notas retativamente melhores do que as notas dos vinhos tintos.

##    
##             RED       WHITE
##   3 0.006253909 0.004083299
##   4 0.033145716 0.033278889
##   5 0.425891182 0.297468354
##   6 0.398999375 0.448754594
##   7 0.124452783 0.179665169
##   8 0.011257036 0.035728869
##   9 0.000000000 0.001020825

Apurando as médias dos atributos dos vinhos, por tipo de vinho, podemos notar que a qualidade, o álcool, a densidade e o PH apresentaram resultados muito próximos, apresentando pouca ou diferença insignificante, sugerindo a possibilidade de existência alguma correlação; entretanto os demais atributos apresentam consideráveis diferenças para suas médias.

Identificamos outliers em todas as variáveis da base.

Para a acidez volátil podemos identificar duas parábolas e outliers. Uma distribuição anormal não condizente por exemplo com a distribuição da qualidade.

Na comparação entre os vinhos tintos e brancos podemos verificar uma certa disparidade na maioria dos atributos exceto para a qualidade e o álcool.

Voltando a tomar como exemplo a acidez volátil e comparando os resultado agora segregados entre tinto e branco podemos verificar que as distribuição segregadas parecem mais normais.

Segregamos a análise por tipo de vinho. Para o vinho branco temos mais observações do que para o vinho tinto. A distribuição das notas de qualidade para o vinho branco tem distribuição semelhante a da amostra consolidada da base. A partir de agora a análise será realizada somente com os dados dos vinhos brancos.

##     quality       fixedacidity    volatileacidity    citricacid    
##  Min.   :3.000   Min.   : 3.800   Min.   :0.0800   Min.   :0.0000  
##  1st Qu.:5.000   1st Qu.: 6.300   1st Qu.:0.2100   1st Qu.:0.2700  
##  Median :6.000   Median : 6.800   Median :0.2600   Median :0.3200  
##  Mean   :5.878   Mean   : 6.855   Mean   :0.2782   Mean   :0.3342  
##  3rd Qu.:6.000   3rd Qu.: 7.300   3rd Qu.:0.3200   3rd Qu.:0.3900  
##  Max.   :9.000   Max.   :14.200   Max.   :1.1000   Max.   :1.6600  
##  residualsugar      chlorides       freesulfurdioxide totalsulfurdioxide
##  Min.   : 0.600   Min.   :0.00900   Min.   :  2.00    Min.   :  9.0     
##  1st Qu.: 1.700   1st Qu.:0.03600   1st Qu.: 23.00    1st Qu.:108.0     
##  Median : 5.200   Median :0.04300   Median : 34.00    Median :134.0     
##  Mean   : 6.387   Mean   :0.04577   Mean   : 35.31    Mean   :138.4     
##  3rd Qu.: 9.900   3rd Qu.:0.05000   3rd Qu.: 46.00    3rd Qu.:167.0     
##  Max.   :45.800   Max.   :0.34600   Max.   :289.00    Max.   :440.0     
##     density             pH          sulphates         alcohol     
##  Min.   :0.9871   Min.   :2.720   Min.   :0.2200   Min.   : 8.00  
##  1st Qu.:0.9917   1st Qu.:3.090   1st Qu.:0.4100   1st Qu.: 9.50  
##  Median :0.9937   Median :3.180   Median :0.4700   Median :10.40  
##  Mean   :0.9940   Mean   :3.188   Mean   :0.4898   Mean   :10.51  
##  3rd Qu.:0.9961   3rd Qu.:3.280   3rd Qu.:0.5500   3rd Qu.:11.40  
##  Max.   :1.0140   Max.   :3.820   Max.   :1.0800   Max.   :14.20
##                         quality fixedacidity volatileacidity   citricacid
## quality             1.000000000  -0.11366283     -0.19472297 -0.009209091
## fixedacidity       -0.113662831   1.00000000     -0.02269729  0.289180698
## volatileacidity    -0.194722969  -0.02269729      1.00000000 -0.149471811
## citricacid         -0.009209091   0.28918070     -0.14947181  1.000000000
## residualsugar      -0.098463258   0.08881824      0.05926646  0.093176823
## chlorides          -0.209934411   0.02308564      0.07051157  0.114364448
## freesulfurdioxide   0.008158067  -0.04939586     -0.09701194  0.094077221
## totalsulfurdioxide -0.174737218   0.09106976      0.08926050  0.121130798
## density            -0.313214730   0.26843806      0.01577901  0.148530582
## pH                  0.099427246  -0.42585829     -0.03191537 -0.163748211
## sulphates           0.053677877  -0.01714299     -0.03572815  0.062330940
## alcohol             0.435574715  -0.12088112      0.06771794 -0.075728730
##                    residualsugar   chlorides freesulfurdioxide
## quality              -0.09846326 -0.20993441      0.0081580671
## fixedacidity          0.08881824  0.02308564     -0.0493958591
## volatileacidity       0.05926646  0.07051157     -0.0970119393
## citricacid            0.09317682  0.11436445      0.0940772210
## residualsugar         1.00000000  0.08833989      0.3027757258
## chlorides             0.08833989  1.00000000      0.1013923521
## freesulfurdioxide     0.30277573  0.10139235      1.0000000000
## totalsulfurdioxide    0.40421259  0.19891030      0.6155009650
## density               0.83568342  0.25986464      0.3026089630
## pH                   -0.19675874 -0.09043946     -0.0006177961
## sulphates            -0.02829942  0.01676288      0.0592172458
## alcohol              -0.45499024 -0.36018871     -0.2501039415
##                    totalsulfurdioxide     density            pH
## quality                  -0.174737218 -0.31321473  0.0994272457
## fixedacidity              0.091069756  0.26843806 -0.4258582910
## volatileacidity           0.089260504  0.01577901 -0.0319153683
## citricacid                0.121130798  0.14853058 -0.1637482114
## residualsugar             0.404212587  0.83568342 -0.1967587402
## chlorides                 0.198910300  0.25986464 -0.0904394560
## freesulfurdioxide         0.615500965  0.30260896 -0.0006177961
## totalsulfurdioxide        1.000000000  0.53909148  0.0023209718
## density                   0.539091482  1.00000000 -0.0976985163
## pH                        0.002320972 -0.09769852  1.0000000000
## sulphates                 0.134562367  0.07286189  0.1559514973
## alcohol                  -0.448892102 -0.79667757  0.1214320987
##                      sulphates     alcohol
## quality             0.05367788  0.43557472
## fixedacidity       -0.01714299 -0.12088112
## volatileacidity    -0.03572815  0.06771794
## citricacid          0.06233094 -0.07572873
## residualsugar      -0.02829942 -0.45499024
## chlorides           0.01676288 -0.36018871
## freesulfurdioxide   0.05921725 -0.25010394
## totalsulfurdioxide  0.13456237 -0.44889210
## density             0.07286189 -0.79667757
## pH                  0.15595150  0.12143210
## sulphates           1.00000000 -0.01743277
## alcohol            -0.01743277  1.00000000

Para melhorar a performance preditiva promoveremos a redução de dimensionalidade. Analisando os componentes principais será descartada a variável “residualsugar” devido a sua alta correlação com a variável “density” e a sua menor variância, assim como, será descartada a variável “freesulfurdioxide” devido a sua alta correlação com a variável “totalsulfurdioxide” e sua menor variância ao descartar os outliers.

Como o interesse da análise é descobrir sobre as características dos vinhos bons e ruins, vamos filtar para construção do modelo somente as observações dos vinhos que tiveram notas menores que 5 e maiores que 7; de acordo com essas notas passemos a considerar dois grupos, ruins e bons respectivamente.

Após essas limpezas, processamentos e transformações dos dados da base podemos verificar que a distribuição da população é assimétrica positiva sendo a concentração da frequência mais alta à esquerda da média. A maioria das váriáveis possuem curvas mais achatadas, pois possuem frequências mais concentradas, homogêneas (leptocúrticas), exceto para 3 variáveis que apresentam maiores dispersões, heterogêneas (platicúrticas).

Modelo de Regressão Linear

A regressão linear relaciona uma variável dependente, que no nosso caso será a variável quality, com as variáveis que a explicam, chamadas variáveis independentes, que no nosso caso vamos considerar: alcohol, density, volatileacidity e fixedacidity.

É utilizado o método dos mínimos quadrados onde se minimiza a soma de quadrados dos desvios dos pontos sobre uma reta ajustada. A reta é traçada obtém a menor distâncias diferença entre os pontos.

Aplicando a regressão linear considerando as variáveis supra podemos constatar correlação moderada, chegando 41,43% para o R2 ajustado.

## 
## Call:
## lm(formula = quality ~ alcohol + density + volatileacidity + 
##     fixedacidity, data = white_rmoutliers)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1837 -1.2574  0.1744  1.0735  3.6573 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -230.94978   56.29271  -4.103 5.06e-05 ***
## alcohol            1.13546    0.10840  10.475  < 2e-16 ***
## density          229.67483   55.96005   4.104 5.03e-05 ***
## volatileacidity   -4.48708    0.55781  -8.044 1.29e-14 ***
## fixedacidity      -0.31101    0.09147  -3.400  0.00075 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.597 on 358 degrees of freedom
## Multiple R-squared:  0.4208, Adjusted R-squared:  0.4143 
## F-statistic: 65.01 on 4 and 358 DF,  p-value: < 2.2e-16

Podemos dizer que os resíduos do modelo não são simétricos, mas possuem uma distribuição normal. No gráfico abaixo podemos verificar que os residuos se distribuem aleatoriamente em torno de zero ao longo da reta, portanto podemos afirmar que o modelo de regressão está adequado.

Analisamos os residuos e identificamos possíveis outliers. Vamos eliminar as observações cujos resíduos estiverem acima de 2 e abaixo de -2.

O segundo modelo de regressão linear produzido conta com o R2 ajustado de 75,48%; um modelo indicando uma boa correlação.

## The following objects are masked from white_rmoutliers:
## 
##     alcohol, chlorides, citricacid, density, fixedacidity, pH,
##     quality, sulphates, totalsulfurdioxide, volatileacidity
## The following objects are masked from Vinhos:
## 
##     alcohol, chlorides, citricacid, density, fixedacidity, pH,
##     quality, sulphates, totalsulfurdioxide, volatileacidity
## 
## Call:
## lm(formula = quality ~ alcohol + density + volatileacidity + 
##     fixedacidity, data = white_sresiduos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.82497 -0.76094  0.00338  0.74033  2.27061 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -205.25092   42.53850  -4.825 2.29e-06 ***
## alcohol            1.38239    0.07579  18.239  < 2e-16 ***
## density          201.26283   42.35284   4.752 3.20e-06 ***
## volatileacidity   -3.84701    0.39562  -9.724  < 2e-16 ***
## fixedacidity      -0.35582    0.06419  -5.543 6.79e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.013 on 284 degrees of freedom
## Multiple R-squared:  0.7582, Adjusted R-squared:  0.7548 
## F-statistic: 222.6 on 4 and 284 DF,  p-value: < 2.2e-16

Avaliando a raiz do erro médio quadrático (RMSE) pudemos verificar que o primeiro modelo apresentou um resultado melhor para o modelo preditivo.

## [1] "RMSE de predição do Primeiro Modelo de amostra obtida da base de vinhos brancos:0.997393304132405"
## [1] "RMSE de predição do Segundo Modelo de amostra obtida da base de vinhos brancos:1.21541893081073"

Modelo de Árvore de Regressão

A árvore de regressao é formada por nós de decisão onde cada nó representa uma regra, para a base de qualidade de vinhos o algoritmo estabeleceu como variável mais significativa o alcohol seguido por density, volatileacidity, chlorides, totalsulfurdioxide, fixedacidity, pH, sulphates e citricacid. A predição acontece percorrendo o caminho, até chegar a folha, que é o valor predito na regressão.

Vamos realizar uma poda avaliando o melhor ponto entre a relação da validação cruzada e complexidade da árvore para gerar uma árvore diminuta e que possa simplificar o modelo e generalizá-lo para melhorar a capacidade preditiva com a diminuição de erros. Uma árvore com 14 sub-árvores parece o ponto de otimização do modelo.

##            CP nsplit rel error    xerror       xstd
## 1  0.29404555      0 1.0000000 1.0075727 0.01508086
## 2  0.15926220      1 0.7059544 0.7688072 0.04961190
## 3  0.06558590      2 0.5466923 0.6741737 0.05642764
## 4  0.05494498      3 0.4811064 0.6206131 0.06025885
## 5  0.02893378      4 0.4261614 0.5623281 0.05833010
## 6  0.02492550      7 0.3393600 0.5383972 0.06096538
## 7  0.01778430      9 0.2895090 0.5185875 0.06098656
## 8  0.01727710     10 0.2717247 0.5389252 0.06478868
## 9  0.01609095     11 0.2544476 0.5564096 0.06705380
## 10 0.01375691     14 0.2061748 0.5710348 0.06968013

Avaliando a raiz do erro médio quadrático (RMSE) pudemos verificar que modelo apresentou um resultado melhor para explicar os dados que geraram o modelo, apresenta baixo poder preditivo.

## [1] "RMSE de predição dos dados que geraram o modelo :0.946047520985334"
## [1] "RMSE de predição de amostra obtida da base de vinhos brancos:1.69787873152964"

Comparação entre o modelo de Regressão Linear e Árvore de Regressão

O modelo de regressão linear apresentou melhor capacidade preditiva enquanto a árvore de regressão consegue melhor desempenho para explicar a váriável que gerou o modelo do que capacidade de preditiva.

Comparação do RMSE de Saída dos Modelos
Árvore de Regressao Regressão Linear
Predição dos Dados que Geraram o Modelo 0.9460475 2.4597897
Predição de Amostra Aleatória Obtida da Base de Vinhos Brancos 1.6978787 0.9973933

O modelo mais indicado para predição de resultados de qualidade é a regressão linear.